package dao

import (
	"NovelBook/models/db_models"
	"log"

	"gorm.io/driver/mysql"
	"gorm.io/gorm"
)

func GetDb() *gorm.DB {
	return db
}

var (
	db  *gorm.DB
	err error
)

const (
	// Dsn1 王伟的远程数据库1
	Dsn1 = "bms:t4EA84YJfBYkBBeD@(shrewdboy.top:3306)/bms?charset=utf8mb4&parseTime=True&loc=Local"
	// Dsn2 王伟的远程数据库2
	Dsn2 = "bmstest:6j5AkLSjFcMibxA4@(shrewdboy.top:3306)/bmstest?charset=utf8mb4&parseTime=True&loc=Local"
)

func InitMysql(dsn string) {

	// 连接数据库

	// lmx的远程数据库
	//dsn := "root:123456@(114.116.89.5:3306)/BMS?charset=utf8mb4&parseTime=True&loc=Local"

	// 其他测试用的数据库
	// 王伟的远程数据库1
	// dsn := "bms:t4EA84YJfBYkBBeD@(shrewdboy.top:3306)/bms?charset=utf8mb4&parseTime=True&loc=Local"

	// 王伟的远程数据库2
	// dsn := "bmstest:6j5AkLSjFcMibxA4@(shrewdboy.top:3306)/bmstest?charset=utf8mb4&parseTime=True&loc=Local"

	db, err = gorm.Open(mysql.Open(dsn), &gorm.Config{})
	if err != nil {
		log.Fatal("mysql connect error")
	}
}

func InitMysqlTable() {

	err = GetDb().AutoMigrate(&db_models.BooksKinds{})
	err = GetDb().AutoMigrate(&db_models.Books{})
	err = GetDb().AutoMigrate(&db_models.BooksNumber{})
	err = GetDb().AutoMigrate(&db_models.BorrowTable{})

	err := GetDb().AutoMigrate(&db_models.Borrower{})
	err = GetDb().AutoMigrate(&db_models.Manager{})
	err = GetDb().AutoMigrate(&db_models.Worker{})
	err = GetDb().AutoMigrate(&db_models.Superuser{})

	if err != nil {
		log.Println("Init Mysql Table Err: ", err)
	}
}
